In today's world of telecommunications, more and more devices and functionalities are being integrated with one another in order to create new features and capabilities for the everyday user, as well as for large organizations and enterprises. Numerous examples of this can be seen in the realms of mobile devices, cellular phones and computers. Everything from electronic mail, internet access, text messaging, video and digital photography to video games, social networking and other forms entertainment, are becoming available for a wide variety of mobile devices. Countless web applications now provide services that can access or be accessed via mobile phone to enable a particular feature.
Given all of this pervasiveness, the development and management of software applications must expand in order to accommodate a multitude of mediums and modes of operation previously unconsidered by most developers. As a simple illustration, in order to allow an internet user of a web application to set up a conference telephone call between several end subscribers, the application must be able to interact in some meaningful way with multiple and substantially different protocols and networks.
Traditionally, web applications have been built using the structures, threading models and state management techniques derived from the hypertext transfer protocol (HTTP) Servlet specification. The fundamentals of such applications have thus been limited and restricted in many ways by the model of interaction of HTTP. As such, when a web application needs to use HTTP and some other protocol that has a different interaction pattern, the two models are often in conflict. The resulting applications are thus left unsupported by either model, or end up with difficult and un-maintainable workarounds.
What is needed is a more generic and abstract approach to constructing new applications, one that is not limited by any particular protocol and one that does not contain preferences to any single mode of interaction. It is desirable that this new approach address a model for reuse of application components, as well as provide simplified fault tolerance, concurrency, atomicity and transparent distribution for various applications. Applicant has identified these, as well as other shortcomings and needs that currently exist in the art in coming to conceive the subject matter of the present disclosure.